
<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Document</title>
  <style type="text/css">
 
  </style>
</head>
<body>
  <div id="app">
    用户名： <input type="text" name="" id="" v-model.lazy="username">
      <span>{{tip}}</span>
  </div>

  <script type="text/javascript" src="./js/vue.js"></script>
  <script type="text/javascript">
    /*
      侦听器 案例：
        1 采用侦听器监听用户名的变化
        2 调用后台接口进行验证
        3 根据验证的结果调整提示信息
    */
    var vm = new Vue({
      el: '#app',
    data: {
        username: "",
        tip: ""
      },
     methods: {
      checkName: function(username) {
        // 调用接口， 但是可以使用定时任务的方式模拟接口的调用
        var that = this;
        setTimeout(function() {
          // 模拟接口调用
          if (username == 'admin') {
            that.tip = '用户名已经存在，请重新输入！';
          } else {
            that.tip = '用户名可以使用';
          }
        }, 2000)
      }
     },
    watch: {
        username: function(val) {
          // 调用后台接口验证用户名的合法性
          this.checkName(val);
          // 修改提示信息
          this.tip = '正在验证......'
        }
      }
    });
  </script>
</body>
</html>
